package org.huel.backend.result;

import lombok.Getter;
import lombok.Setter;

/**
 * @Description: 结果封装
 * @Author Liweijian.
 * @Date 2024/11/8 13:46
 */
@Getter
@Setter
public class Result {
    private Integer code;
    private String message;
    private Object data;

    // 私有化构造器，避免直接创建实例
    public Result(Integer code, String message, Object data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    // 静态方法：成功，不带数据
    public static Result success() {
        return new Result(200, "成功", null);
    }

    // 静态方法：成功，带数据
    public static Result success(Object data) {
        return new Result(200, "成功", data);
    }

    // 静态方法：成功，自定义消息
    public static Result success(String message, Object data) {
        return new Result(200, message, data);
    }

    // 静态方法：错误，带错误码和默认消息
    public static Result error(Integer code) {
        return new Result(code, "发生错误", null);
    }

    // 静态方法：错误，带错误码和自定义消息
    public static Result error(Integer code, String message) {
        return new Result(code, message, null);
    }

    // 静态方法：错误，带错误码、自定义消息和数据
    public static Result error(Integer code, String message, Object data) {
        return new Result(code, message, data);
    }
}